package com.xique.park.service.biz.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.common.core.web.domain.PageResult;
import com.xique.park.bean.request.mini.InvoiceRequest;
import com.xique.park.bean.request.mini.OrderRequest;
import com.xique.park.bean.request.mini.SaveUserPlateRequest;
import com.xique.park.bean.request.mini.SelectNearByParkRequest;
import com.xique.park.bean.vo.web.parkingOrder.ParkingOrderVo;

/**
 * @author caogq
 */
public interface IMiniProgramBizService {

    /**
     * 获取附近的车场（redis-GEO）
     *
     * @param request
     * @return
     */
    @Deprecated
    AjaxResult getNearByParkInfoRedis(SelectNearByParkRequest request);

    /**
     * 获取附近的车场（redis-GEO）
     *
     * @param request
     * @return
     */
    AjaxResult getNearByParkInfoMysql(SelectNearByParkRequest request);

    /**
     * 保存小程序用户的车牌
     *
     * @param request
     * @return
     */
    AjaxResult saveUserPlate(SaveUserPlateRequest request);

    /**
     * 查询小程序用户的车牌
     *
     * @param baseUserId
     * @return
     */
    AjaxResult selectUserPlate(Long baseUserId);

    /**
     * 根据条件分页查询订单记录列表
     *
     * @param orderRequest 订单查询参数
     * @return 分页查询结果
     */
    PageResult selectOrderList(OrderRequest orderRequest);

    /**
     * 根据ID查询订单详情
     *
     * @param id 订单ID
     * @return 订单详情信息
     */
    ParkingOrderVo selectOrderDetailById(Long id);

   /**
    * 删除车牌
    * @param baseUserId
    * @param plate
    * @return
    */
    AjaxResult deleteUserPlate(Long baseUserId,String plate);

    /**
     * @description: 开票
     * @author: HdongSun
     * @date: 2022/9/19 10:51
     * @param: [id]
     * @return: com.xique.common.core.web.domain.AjaxResult
     **/
    AjaxResult invoice(Long id);

    /**
     * @description: 获取用户推送设置
     * @author: HdongSun
     * @date: 2022/10/14 10:28
     * @param: [userId用户id]
     * @return: com.xique.common.core.web.domain.AjaxResult
     **/
    AjaxResult getPushSetting(Long userId);

    /**
     * @description: 推送设置
     * @author: HdongSun
     * @date: 2022/10/14 9:59
     * @param: [userId 用户id, status 状态]
     * @return: com.xique.common.core.web.domain.AjaxResult
     **/
    AjaxResult settingPush(Long userId, Integer status);
}
